﻿using DocumentFormat.OpenXml.Lite.DrawingML.Base;
using DocumentFormat.OpenXml.Lite.DrawingML.Media;
using DocumentFormat.OpenXml.Lite.Xml;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace DocumentFormat.OpenXml.Lite.DrawingML.Text
{
    public class Hyperlink : XmlSerializable
    {
        [Optional]
        [XmlAttribute("id", Namespace = Constants.Relationship, Form = XmlSchemaForm.Qualified)]
        public string RelationshipId { get; set; }

        [Optional]
        [XmlAttribute("invalidUrl", Form = XmlSchemaForm.Qualified)]
        public string InvalidUrl { get; set; }

        [Optional]
        [XmlAttribute("action", Form = XmlSchemaForm.Qualified)]
        public string Action { get; set; }

        [Optional]
        [XmlAttribute("tgtFrame", Form = XmlSchemaForm.Qualified)]
        public string TargetFrame { get; set; }

        [Optional]
        [XmlAttribute("tooltip", Form = XmlSchemaForm.Qualified)]
        public string Tooltip { get; set; }

        [Optional]
        [XmlAttribute("history", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> History { get; set; }

        [Optional]
        [XmlAttribute("highlightClick", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> HiglightClick { get; set; }

        [Optional]
        [XmlAttribute("endSnd", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> EndSound { get; set; }

        [Optional]
        [XmlElement("snd", Namespace = Constants.Main)]
        public Sound HyperlinkSound { get; set; }

        [Optional]
        [XmlElement("ectLst", Namespace = Constants.Main)]
        public ExtensionList ExtensionList { get; set; }

        public Hyperlink() { }
    }
}
